4fa915121bfd043fb4fb0feacf122308d17cb8e1,expandablerecyclerview/src/main/java/com/github/huajianjiang/expandablerecyclerview/widget/ExpandableAdapter.java,ExpandableAdapter,notifyChildItemRangeRemoved,#number#number#number#boolean#,1170

Before Change


        int parentAdapterPos = getParentAdapterPosition(parentPosition);
        if (parentAdapterPos == RecyclerView.NO_POSITION) return;

        ParentWrapper parentWrapper = (ParentWrapper) getItem(parentAdapterPos);
        List<?> children = parentWrapper.getChildren();

        //注�:这里判断当�父列表项是�已�打开,�有打开更改本地数�结构并通知刷新,�则会出现数�混乱异常

After Change


        int parentAdapterPos = getParentAdapterPosition(parentPosition);
        if (parentAdapterPos == RecyclerView.NO_POSITION) return;

        ParentWrapper<P, C> parentWrapper = getItem(parentAdapterPos);
        //判断是�所有的 child 都移除了,
        boolean allChildRemoved = !parentWrapper.hasChildren();
        //注�:这里判断当�父列表项是�已�打开,�有打开更改本地数�结构并通知刷新,�则会出现数�混乱异常
        if (!parentWrapper.isExpanded()) {
            //如果�列表项都删除了,默认通知这些删除的�列表项所属的父列表项已�为折�状�
            if (allChildRemoved && parentWrapper.setExpandable(false)) {
                syncParentExpandableState(parentPosition);
            }
            return;
        }

        int childAdapterPosStart = getChildAdapterPosition(parentPosition, childPositionStart);
        if (childAdapterPosStart == RecyclerView.NO_POSITION) return;

        mItems.removeAll(
                mItems.subList(childAdapterPosStart, childAdapterPosStart + childItemCount));
        notifyItemRangeRemoved(childAdapterPosStart, childItemCount);

        //强制在移除 child 时自动折� parent
        if (forceCollapseParent && !allChildRemoved) {
            collapseView(parentPosition, true);
        } else {
            //如果�列表项都删除了,默认通知这些删除的�列表项所属的父列表项已�为折�状�
            if (allChildRemoved) {
                if (parentWrapper.setExpandable(false)) {
                    syncParentExpandableState(parentPosition);
                }
                parentWrapper.setExpanded(false);
                //�步 ParentViewHolder 和 ParentWrapper 的 Parent 展开状�